package com.bjsxt.commu1;

public class ConsumeRunnable implements Runnable{

    private Product product;

    public ConsumeRunnable(Product product) {
        this.product = product;
    }
    @Override
    public void run() {
        while (true) {

            //生产者和消费者都要加锁，且要是同一把锁
            synchronized (product) {
                //如果仓库为空，则等待生产者生产
                if (!product.flag) {
                    try {
                        product.wait();     //线程等待，释放锁
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println("消费者消费一件商品：" + product.getName() + "，" + product.getColor());

                //改变仓库状态
                product.flag = false;

                //唤醒生产者
                product.notifyAll();        //唤醒所有等待的线程（目前等待的只有1个，就是消费者）
            }
        }

    }
}
